#include<bits/stdc++.h>
using namespace std;

int n;
int a[1010][6];
int ccc[1010];
struct stru{
	string str;
}t[1010];


int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		string ad;
		cin>>t[1010].str>>ad;
		int aa=ad.size();
		int cny=0,ans=0;
		for(int k=0;k<aa;k++){
			if(ad[k]!='0'||ad[k]!='1'||ad[k]!='2'||ad[k]!='3'||ad[k]!='4'||ad[k]!='5'||ad[k]!='6'||ad[k]!='7'||ad[k]!='8'||ad[k]!='9'||ad[k]=='.'||ad[k]==':'){
				ccc[i]=0;
				break;
			}
			if(ad[k]=='.'||ad[k]==':'){
				ans++;
				if(k==0||ad[k-1]=='.'||k==(aa-1)){
					ccc[i]=0;
					break;
				}
				else {
					int qwq=1;
					for(int j=k-1;j>=cnt;j--){
						a[i][ans]+=(qwq*(str[j]-'0'));
						qwq*=10;
					}
					if(ans>=1&&ans<=4){
						if(a[i][ans]>255){
							ccc[i]=0;
							break;
						}
					}
				}
			}
			if(ad[k]==':'){
				if(ans!=4){
					ccc[i]=0;
					break;
				}
				ans++;
				int qwq=1;
				for(int j=sa-1;j>=k+1;j--){
					a[i][ans]+=(qwq*(str[j]-'0'));
					qwq*=10;
				}
				if(a[i][ans]>65535){
					ccc[i]=0;
					break;
				}
				ccc[i]=1;
				break;
			cnt=k+1;
		}
	}
	}
	for(int i=1;i<=n;i++){
		if(ccc[i]==0)cout<<"ERR"<<endl;
		else {
			if(t[i].str=='Server'){
				for(int j=1;j<i;j++){
						for(int k=1;k<=5;k++){
							if(t[j].str=='Server')if(a[i][k]!=a[j][k])break;
							if(a[i][k]==a[j][k]&&k==5){
								ccc[i]==2;
								cout<<"FAIL"<<endl
							}
						}
					if(ccc[i]==2)break;
				}
				if(ccc[i]=1)cout<<"OK"<<endl;
			}
			if(t[i].str=='Client'){
				for(int j=1;j<i;j++){
						for(int k=1;k<=5;k++){
							if(t[j].str=='Server')if(a[i][k]!=a[j][k])break;
							if(a[i][k]==a[j][k]&&k==5){
								ccc[i]==2;
								cout<<j<<endl
							}
						}
					if(ccc[i]==2)break;
				}
				if(ccc[i]=1)cout<<"FAIL"<<endl;
			}
		}
	}
	
	return 0;
}
